package ntut.andengine.gamedesign;

import ntut.andengine.physics.ContactEvent;
import ntut.andengine.physics.PhysicalComponent;
import ntut.andengine.physics.PhysicalComponent.ComponentColor;
import ntut.andengine.physics.PhysicalFactory;

import org.anddev.andengine.engine.Engine;
import org.anddev.andengine.entity.scene.Scene;
import org.anddev.andengine.opengl.texture.TextureOptions;
import org.anddev.andengine.opengl.texture.bitmap.BitmapTexture;

import android.content.Context;

import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;

public class GameSceneLevel2 extends GameSceneLevel {

	// ===========================================================
	// Constants
	// ===========================================================
	
	// ===========================================================
	// Fields
	// ===========================================================
	
	// ===========================================================
	// Constructors
	// ===========================================================

	public GameSceneLevel2(Context context, Engine engine) {
		super(context, engine);
	}
	
	// ===========================================================
	// Getter & Setter
	// ===========================================================

	// ===========================================================
	// Methods for/from SuperClass/Interfaces
	// ===========================================================

	@Override
	public void onLoadResources() {
		this.mBitmapTexture = new BitmapTexture(64, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA);

		//this.mBoxFaceTextureRegion = BitmapTextureRegionFactory.createTiledFromAsset(this.mBitmapTexture, mContext, "face_box_tiled.png", 0, 0, 2, 1);
		
		mEngine.getTextureManager().loadTexture(this.mBitmapTexture);	
	}

	@Override
	public Scene onLoadScene() {
		((MainGameActivity) mContext).setGameSceneLevel(this);
		
		this.mScene.setOnSceneTouchListener(this);
		
//		PhysicalFactory.CreateWall(this, new Vector2(240, 280), 480, 20, ComponentColor.Blue);
//        PhysicalFactory.CreateWall(this, new Vector2(240, 480), 480, 20, ComponentColor.Red);
//
//        PhysicalComponent gate = PhysicalFactory.CreateTransmissionGate(this, new Vector2(240, 640));
//        gate.getBody().setUserData(new ContactEvent("Gate"){
//
//			@Override
//			public void beginContact(Body body, Vector2 Normal) {
//				
//				// LEVEL COMPLETE!!
//				if(body.getUserData().toString() == "Player"){
//					//changeScene(mBitmapTexture, new GameSceneLevel3(mContext, mEngine));
//				}
//			
//			}
//
//			@Override
//			public void endContact(Body body, Vector2 Normal) {
//				// TODO Auto-generated method stub
//				
//			}
//		
//		});
        
//        mSparkle = PhysicalFactory.CreateSparkle(this, new Vector2(240, 120), ComponentColor.Blue);
	
		this.mScene.registerUpdateHandler(this.mPhysicsWorld);	

		return mScene;
	}

	// ===========================================================
	// Methods
	// ===========================================================
	
	// ===========================================================
	// Inner and Anonymous Classes
	// ===========================================================

}
